There is a trend within the semiconductor industry towards designing semiconductor structures with the capability of testing themselves (built-in self-test). Providing a complex, very large scale integrated circuit with built-in self-test capability allows very high fault coverage to be obtained without the need for sophisticated test equipment. Presently, there does not exist a single generic technique capable of accomplishing built-in self-testing of different types of structures (e.g., RAMs, ROMs, FIFOs etc.). Thus, separate built-in self-test techniques are required for such different functional structures.
While built-in self-test techniques are known to exist for most types of functional semiconductor structures, there exists one type of functional structure, the Content Addressable Memory (CAM) for which no built-in self-test technique is known to exist. CAMs are similar to conventional Random Access Memories (RAMs) in that they contain a matrix array of memory cells into which data can be written, or from which data can be read, in a random fashion. In addition, CAMs also contain a plurality of exclusive OR (XOR) gates, each gate being associated with a separate one of the memory cells in each row of the array. The XOR gates associated with the memory cells in each row have their outputs ANDed with each other, providing the CAM with the advantage of matching a word (referred to as a "match word") to the word stored in each row of the array. In addition, some CAMs also offer a feature known as a "wild card" which allows masking of selected bits of the match word.
The matching and wild card features of present day CAMs cause them to be more complex as compared to other types of memories such as RAM. For that reason, present day built-in self-tests techniques used for RAMs are not proper for CAMs. Further, there is no known single built-in self-test technique which has provided effective for testing all of the features of the CAMs (including matching and the wild card).
Thus, there is a need for technique for accomplishing built-in self-testing of a CAM.